package exp4;

import java.util.*;

// ##众数：
// ###题目描述 给定含有 n个元素的多重集合 S，
// 每个元素在 S 中出现的次数称为该元素的重数。
// 多重 集 S 中重数最大的元素称为众数。
// 例如，S={1，2，2，2，3，5}。 多重集 S 的众数是 2，其重数为 3。
// ###算法设计： 对于给定的由 n 个自然数组成的多重集 S，
// 计算 S 的众数及其重数。
// ###输入 第 1行多重集 S 中元素个数 n（n<=2000000）；
// 接下来的 n行中，每行有一个自然数
// ###输出 输出的第1行给出众数，第 2 行是重数
// 如果有多个数出现频度一样，输出最小的那个数
// ###样例输入
public class MultipleNumber {
    static class Number {
        int x, temp;

        Number(int x, int temp) {
            this.x = x;
            this.temp = temp;
        }

        @Override
        public String toString() {
            return String.format("%d %d", x, temp);
        }
    }

    public static void main(String[] args) {
        Vector<Integer> vector = new Vector<>();
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            vector.add(in.nextInt());
        }
        Collections.sort(vector);
        Vector<Number> numbers = new Vector<>();
        int cur = vector.get(0), temp = 1;
        for (int i = 1; i < vector.size(); i++) {
            if (cur == vector.get(i)) {
                temp++;
                continue;
            }
            numbers.add(new Number(cur, temp));
            cur = vector.get(i);
            temp = 1;
        }
        numbers.add(new Number(cur, temp));
        int max = numbers.get(1).temp;
        for (int i = 0; i < numbers.size(); i++) {
            max = Math.max(max, numbers.get(i).temp);
        }
        for (int i = 0; i < numbers.size(); i++) {
            if (max == numbers.get(i).temp) {
                System.out.println(numbers.get(i));
            }

        }
    }
}
